home *** CD-ROM | disk | FTP | other *** search
/ All for Cell Phones: Sony Ericsson / Sony-Ericsson 2004.iso / Java / DS Blocks / DS_Blocks.jar / dsCanvas.class (.txt) < prev   
Encoding:
Java Class File  |  2002-04-19  |  12.8 KB  |  683 lines

  1. import java.util.Random;
  2. import javax.microedition.lcdui.Canvas;
  3. import javax.microedition.lcdui.Display;
  4. import javax.microedition.lcdui.Font;
  5. import javax.microedition.lcdui.Graphics;
  6. import javax.microedition.lcdui.Image;
  7.  
  8. public class dsCanvas extends Canvas implements Runnable {
  9.    Display _fld4;
  10.    int _fld2b;
  11.    int _fld3b;
  12.    int _fld4b;
  13.    int _fld5b;
  14.    Font _fld6b;
  15.    int _fld7b;
  16.    Image _fld8b;
  17.    Graphics _fld9b;
  18.    static Random _fld0c = new Random();
  19.    boolean _fld1c;
  20.    boolean _fld2c;
  21.    Thread _fld3c;
  22.    boolean _fld4c = false;
  23.    boolean _fld5c = false;
  24.    int _fld6c;
  25.    int _fld7c;
  26.    int _fld8c;
  27.    String _fld9c = new String();
  28.    byte[] _fld0d;
  29.    String _fld1d = new String();
  30.    byte[] _fld2d;
  31.    int _fld3d;
  32.    int _fld4d;
  33.    int _fld5d;
  34.    int _fld6d;
  35.    int _fld7d;
  36.    int _fld8d;
  37.    int _fld9d;
  38.    int _fld0e;
  39.    int _fld1e;
  40.    int _fld2e;
  41.    int _fld3e;
  42.    int _fld4e;
  43.    int _fld5e;
  44.    int _fld6e;
  45.    int _fld7e = 0;
  46.    int _fld8e;
  47.    int _fld9e;
  48.    int _fld0f;
  49.    int[] _fld1f;
  50.    int _fld2f;
  51.    // $FF: renamed from: GH int
  52.    int field_0;
  53.    // $FF: renamed from: GW int
  54.    int field_1;
  55.    // $FF: renamed from: nx int
  56.    int field_2;
  57.    // $FF: renamed from: ny int
  58.    int field_3;
  59.    int[] _fld3f = new int[16];
  60.    int[] _fld4f = new int[64];
  61.    int[] _fld5f = new int[64];
  62.    Font _fld6f;
  63.    String _fld7f = "Next";
  64.    String _fld8f = "Score";
  65.    String _fld9f = "000000";
  66.    int _fld0g;
  67.    int _fld1g;
  68.    int _fld2g;
  69.    int _fld3g;
  70.    int _fld4g;
  71.    int _fld5g;
  72.    int _fld6g;
  73.    int _fld7g;
  74.    int _fld8g;
  75.    int _fld9g;
  76.    int _fld0h;
  77.    int _fld1h;
  78.    int _fld2h;
  79.    int _fld3h;
  80.    String _fld4h = "000000";
  81.    boolean _fld5h = false;
  82.    int _fld6h = 0;
  83.    int _fld7h = 0;
  84.    int _fld8h = 0;
  85.    int _fld9h = 0;
  86.    int _fld0i;
  87.    int _fld1i;
  88.    int _fld2i;
  89.    int _fld3i;
  90.    int _fld4i;
  91.    int[][] _fld5i = new int[][]{{0, 1, 0, 0}, {1, 1, 1, 1}, {0, 2, 0, 1}, {0, 1, 0, 1}, {0, 1, 0, 1}, {0, 1, 0, 1}, {0, 1, 0, 1}};
  92.    int[][] _fld6i = new int[][]{{3, 3, 3, 2}, {3, 3, 3, 3}, {4, 3, 4, 2}, {3, 3, 3, 3}, {3, 3, 3, 3}, {3, 3, 3, 3}, {3, 3, 3, 3}};
  93.    int[][] _fld7i = new int[][]{{1, 0, 0, 0}, {1, 1, 1, 1}, {2, 0, 1, 0}, {1, 0, 1, 0}, {1, 0, 1, 0}, {1, 0, 1, 0}, {1, 0, 1, 0}};
  94.    int[][] _fld8i = new int[][]{{3, 3, 2, 3}, {3, 3, 3, 3}, {3, 4, 2, 4}, {3, 3, 3, 3}, {3, 3, 3, 3}, {3, 3, 3, 3}, {3, 3, 3, 3}};
  95.    int[] _fld9i = new int[]{16777215, 0, 0, 0, 0, 0, 0, 0};
  96.    int[] _fld0j = new int[]{16777215, 16711680, 45056, 255, 16711935, 65280, 16756736, 45311};
  97.    int[] _fld1j;
  98.    int[] _fld2j = new int[]{0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0};
  99.    int[] _fld3j = new int[]{0, 0, 0, 0, 0, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0};
  100.    int[] _fld4j = new int[]{0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0};
  101.    int[] _fld5j = new int[]{0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 4, 4, 0, 0, 0, 0, 0};
  102.    int[] _fld6j = new int[]{0, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 5, 5, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 5, 5, 0, 0, 5, 0, 0, 0, 0, 0, 0};
  103.    int[] _fld7j = new int[]{0, 0, 0, 0, 0, 6, 6, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0};
  104.    int[] _fld8j = new int[]{0, 0, 0, 0, 7, 7, 7, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0};
  105.  
  106.    public dsCanvas(Display var1) {
  107.       this._fld4 = var1;
  108.       this._fld2b = ((Canvas)this).getWidth();
  109.       this._fld3b = ((Canvas)this).getHeight();
  110.       this._fld8b = Image.createImage(this._fld2b, this._fld3b);
  111.       this._fld9b = this._fld8b.getGraphics();
  112.       this._fld2c = true;
  113.       this._fld0d = new byte[17];
  114.       this._fld2d = new byte[17];
  115.       this._mth6b();
  116.       if (this._fld2b >= 200 && this._fld3b >= 200) {
  117.          this._fld6b = Font.getFont(0, 0, 0);
  118.       } else {
  119.          this._fld6b = Font.getFont(0, 0, 8);
  120.       }
  121.  
  122.       this._fld7b = this._fld6b.getHeight() + 2;
  123.       if (var1.isColor()) {
  124.          this._fld4c = true;
  125.       }
  126.  
  127.       if (var1.numColors() > 4) {
  128.          this._fld5c = true;
  129.       }
  130.  
  131.       this._mth7b();
  132.       this._fld7c = this._fld2b >> 1;
  133.       this._fld8c = this._fld3b >> 1;
  134.       this._fld6c = 0;
  135.       this._mth1c();
  136.       this._mth0c();
  137.       if (var1.numColors() > 2) {
  138.          this._fld4d = -16776961;
  139.          this._fld5d = -1;
  140.          this._fld6d = -256;
  141.          this._fld7d = -1;
  142.          this._fld8d = -16777216;
  143.          this._fld9d = -16776961;
  144.          this._fld0e = -65536;
  145.          this._fld1e = -16776961;
  146.          this._fld2e = -1;
  147.          this._fld3e = -1;
  148.          this._fld4e = -16777216;
  149.          this._fld5e = -16776961;
  150.          this._fld6e = -1;
  151.       } else {
  152.          this._fld4d = -1;
  153.          this._fld5d = -16777216;
  154.          this._fld6d = -16777216;
  155.          this._fld7d = -1;
  156.          this._fld8d = -16777216;
  157.          this._fld9d = -16777216;
  158.          this._fld0e = -16777216;
  159.          this._fld1e = -1;
  160.          this._fld2e = -16777216;
  161.          this._fld3e = -1;
  162.          this._fld4e = -16777216;
  163.          this._fld5e = -16777216;
  164.          this._fld6e = -1;
  165.       }
  166.  
  167.       this._fld1j = new int[6];
  168.       if (var1.numColors() < 4) {
  169.          this._fld1j = this._fld9i;
  170.       } else {
  171.          this._fld1j = this._fld0j;
  172.       }
  173.  
  174.       this._fld3d = 2;
  175.       this._fld0i = 2;
  176.       this.field_0 = 18;
  177.       this.field_1 = 11;
  178.       this._fld1f = new int[this.field_1 * this.field_0];
  179.    }
  180.  
  181.    void _mth0c() {
  182.       if (this._fld0d[4] != 100 || this._fld2d[4] != 68 || this._fld0d[11] != 116 || this._fld2d[16] != 97) {
  183.          this._fld2c = false;
  184.       }
  185.  
  186.    }
  187.  
  188.    void _mth0d() {
  189.       try {
  190.          this._fld4.setCurrent(this);
  191.          if (this._fld3c == null) {
  192.             this._fld3c = new Thread(this);
  193.          }
  194.  
  195.          if (this._fld2c) {
  196.             this._fld1c = false;
  197.          } else {
  198.             this._fld1c = true;
  199.          }
  200.  
  201.          if (!this._fld3c.isAlive()) {
  202.             this._fld3c.start();
  203.          }
  204.       } catch (Exception var1) {
  205.       }
  206.  
  207.    }
  208.  
  209.    void _mth1c() {
  210.       if (this._fld0d[5] != 115 || this._fld2d[11] != 99 || this._fld0d[15] != 111 || this._fld2d[12] != 105) {
  211.          this._fld2c = false;
  212.       }
  213.  
  214.    }
  215.  
  216.    boolean _mth2b(int var1, int var2) {
  217.       if (var2 == this.field_0 - this._fld4i + 1) {
  218.          return true;
  219.       } else {
  220.          for(int var3 = this._fld3i; var3 < this._fld4i; ++var3) {
  221.             for(int var4 = this._fld1i; var4 < this._fld2i; ++var4) {
  222.                if (this._fld1f[(var2 + var3) * this.field_1 + var1 + var4] != 0 && this._fld3f[var3 * 4 + var4] != 0) {
  223.                   return true;
  224.                }
  225.             }
  226.          }
  227.  
  228.          return false;
  229.       }
  230.    }
  231.  
  232.    void _mth2c() {
  233.       String var1 = "Game Over!";
  234.       this._fld9b.setColor(this._fld3e);
  235.       this._fld9b.fillRect(0, 0, this._fld2b, this._fld3b);
  236.       Font var2 = Font.getFont(0, 0, 8);
  237.       int var3 = var2.stringWidth(var1);
  238.       this._fld9b.setFont(var2);
  239.       this._fld9b.setColor(this._fld4e);
  240.       this._fld9b.drawString(var1, this._fld7c - (var3 >> 1), this._fld8c + (var2.getHeight() >> 1), 36);
  241.    }
  242.  
  243.    void _mth3b() {
  244.       for(int var1 = 0; var1 < this.field_0; ++var1) {
  245.          boolean var2 = false;
  246.  
  247.          for(int var3 = 0; var3 < this.field_1; ++var3) {
  248.             if (this._fld1f[var1 * this.field_1 + var3] == 0) {
  249.                var2 = true;
  250.             }
  251.          }
  252.  
  253.          if (!var2) {
  254.             for(int var4 = var1 - 1; var4 >= 0; --var4) {
  255.                for(int var5 = 0; var5 < this.field_1; ++var5) {
  256.                   this._fld1f[(var4 + 1) * this.field_1 + var5] = this._fld1f[var4 * this.field_1 + var5];
  257.                }
  258.             }
  259.  
  260.             this._fld3h += 10 * this._fld3d;
  261.             if (this._fld3h < 10) {
  262.                this._fld4h = "00000" + this._fld3h;
  263.             } else if (this._fld3h >= 10 && this._fld3h < 100) {
  264.                this._fld4h = "0000" + this._fld3h;
  265.             } else if (this._fld3h >= 100 && this._fld3h < 1000) {
  266.                this._fld4h = "000" + this._fld3h;
  267.             } else if (this._fld3h >= 1000 && this._fld3h < 10000) {
  268.                this._fld4h = "00" + this._fld3h;
  269.             } else if (this._fld3h >= 10000 && this._fld3h < 100000) {
  270.                this._fld4h = "0" + this._fld3h;
  271.             } else {
  272.                this._fld4h = "999999";
  273.             }
  274.          }
  275.       }
  276.  
  277.    }
  278.  
  279.    void _mth3c() {
  280.       for(int var1 = 0; var1 < 3; ++var1) {
  281.          this.field_3 = this._fld0f + 1;
  282.          if (this._mth2b(this.field_2, this.field_3)) {
  283.             this._mth9c(this._fld9e, this._fld0f);
  284.             this._mth7c();
  285.             return;
  286.          }
  287.  
  288.          this._fld0f = this.field_3;
  289.          this._fld9e = this.field_2;
  290.       }
  291.  
  292.    }
  293.  
  294.    void _mth4b() {
  295.       if (this._fld9h++ >= this._fld0i) {
  296.          this._fld9h = 0;
  297.          this.field_3 = this._fld0f + 1;
  298.          if (this._mth2b(this.field_2, this.field_3)) {
  299.             this._mth9c(this._fld9e, this._fld0f);
  300.             this._mth7c();
  301.          } else {
  302.             this._fld0f = this.field_3;
  303.             this._fld9e = this.field_2;
  304.          }
  305.       }
  306.  
  307.    }
  308.  
  309.    void _mth4c() {
  310.       this._fld9b.setColor(this._fld3e);
  311.       this._fld9b.fillRect(0, 0, this._fld2b, this._fld3b);
  312.       this._fld9b.setFont(this._fld6b);
  313.       int var1 = this._fld6b.stringWidth(this._fld9c);
  314.       this._fld9b.setColor(this._fld1e);
  315.       this._fld9b.fillRect(0, 0, this._fld2b, this._fld7b - 2);
  316.       this._fld9b.setColor(this._fld2e);
  317.       this._fld9b.drawString(this._fld9c, this._fld7c - (var1 >> 1), 0, 20);
  318.  
  319.       for(int var2 = 0; var2 < 16; ++var2) {
  320.          this._fld3f[var2] = this._fld5f[16 * this._fld6h + var2];
  321.       }
  322.  
  323.       this._fld1i = this._fld5i[this._fld7h][this._fld6h];
  324.       this._fld2i = this._fld6i[this._fld7h][this._fld6h];
  325.       this._fld3i = this._fld7i[this._fld7h][this._fld6h];
  326.       this._fld4i = this._fld8i[this._fld7h][this._fld6h];
  327.       this._mth3b();
  328.       if (this._fld5h) {
  329.          this._mth3c();
  330.       } else {
  331.          this._mth4b();
  332.       }
  333.  
  334.       for(int var3 = 0; var3 < this.field_1; ++var3) {
  335.          if (this._fld1f[var3 + this.field_1 * 2] != 0) {
  336.             this._fld2f = 3;
  337.          }
  338.       }
  339.  
  340.       this._fld9b.setColor(this._fld4e);
  341.       this._fld9b.drawRect(this._fld4b, this._fld5b, this.field_1 * this._fld8e, this.field_0 * this._fld8e);
  342.  
  343.       for(int var4 = 0; var4 < 4; ++var4) {
  344.          for(int var5 = 0; var5 < 4; ++var5) {
  345.             int var6 = this._fld3f[var4 * 4 + var5];
  346.             if (var6 != 0) {
  347.                this._fld9b.setColor(this._fld1j[var6]);
  348.                this._fld9b.fillRect(this._fld4b + (this._fld9e + var5) * this._fld8e + 1, this._fld5b + (this._fld0f + var4) * this._fld8e + 1, this._fld2h, this._fld2h);
  349.             }
  350.          }
  351.       }
  352.  
  353.       for(int var10 = 0; var10 < this.field_0; ++var10) {
  354.          for(int var11 = 0; var11 < this.field_1; ++var11) {
  355.             int var7 = this._fld1f[var10 * this.field_1 + var11];
  356.             if (var7 != 0) {
  357.                this._fld9b.setColor(this._fld1j[var7]);
  358.                this._fld9b.fillRect(this._fld4b + var11 * this._fld8e + 1, this._fld5b + var10 * this._fld8e + 1, this._fld2h, this._fld2h);
  359.             }
  360.          }
  361.       }
  362.  
  363.       this._fld9b.setColor(this._fld4e);
  364.       this._fld9b.drawRoundRect(this._fld8g, this._fld9g, this._fld0h, this._fld1h, 3, 3);
  365.       int var12 = this._fld8e;
  366.       if (this._fld8h != 0 && this._fld8h != 3) {
  367.          if (this._fld8h == 1 || this._fld8h == 2) {
  368.             var12 = this._fld8e << 1;
  369.          }
  370.       } else {
  371.          var12 = this._fld8e + (this._fld8e >> 1);
  372.       }
  373.  
  374.       for(int var13 = 0; var13 < 4; ++var13) {
  375.          for(int var8 = 0; var8 < 4; ++var8) {
  376.             int var9 = this._fld4f[var13 * 4 + var8];
  377.             if (var9 != 0) {
  378.                this._fld9b.setColor(this._fld1j[var9]);
  379.                this._fld9b.fillRect(this._fld6g - var12 + var8 * this._fld8e + 1, this._fld7g + var13 * this._fld8e + 1, this._fld2h, this._fld2h);
  380.             }
  381.          }
  382.       }
  383.  
  384.       this._fld9b.setColor(this._fld4e);
  385.       this._fld9b.setFont(this._fld6f);
  386.       this._fld9b.drawString(this._fld7f, this._fld0g, this._fld1g, 20);
  387.       this._fld9b.drawString(this._fld8f, this._fld2g, this._fld3g, 20);
  388.       this._fld9b.setColor(this._fld5e);
  389.       this._fld9b.drawString(this._fld4h, this._fld4g, this._fld5g, 20);
  390.    }
  391.  
  392.    void _mth5b() {
  393.       this._fld1c = true;
  394.    }
  395.  
  396.    void _mth5c() {
  397.       String var1 = "DS Blocks";
  398.       this._fld9b.setColor(this._fld4d);
  399.       this._fld9b.fillRect(0, 0, this._fld2b, this._fld3b);
  400.       Font var2 = Font.getFont(0, 1, 16);
  401.       int var3 = var2.stringWidth(var1);
  402.       this._fld9b.setFont(var2);
  403.       this._fld9b.setColor(this._fld5d);
  404.       int var4 = (this._fld8c >> 1) + var2.getHeight();
  405.       this._fld9b.drawString(var1, this._fld7c - (var3 >> 1), var4, 36);
  406.       var2 = Font.getFont(0, 0, 8);
  407.       this._fld9b.setFont(var2);
  408.       var3 = var2.stringWidth(this._fld9c);
  409.       this._fld9b.setColor(this._fld6d);
  410.       this._fld9b.drawString(this._fld9c, this._fld7c - (var3 >> 1), var4 + (var2.getHeight() >> 1) + 4, 36);
  411.       String var5 = "Press start to play";
  412.       int var6 = var2.stringWidth(var5);
  413.       if (this._fld7e++ > 5) {
  414.          this._fld9b.setColor(this._fld5d);
  415.          this._fld9b.drawString(var5, this._fld7c - (var6 >> 1), this._fld8c + (var2.getHeight() << 1), 36);
  416.       }
  417.  
  418.       this._fld7e %= 10;
  419.    }
  420.  
  421.    void _mth6b() {
  422.       this._fld2d[7] = this._fld2d[12] = 105;
  423.       this._fld0d[0] = this._fld0d[1] = this._fld0d[2] = 119;
  424.       this._fld2d[13] = this._fld2d[5] = this._fld2d[16] = 97;
  425.       this._fld0d[3] = this._fld0d[13] = 46;
  426.       this._fld2d[8] = this._fld0d[15] = 111;
  427.       this._fld0d[5] = this._fld0d[12] = 115;
  428.       this._fld2d[7] = this._fld2d[12] = 105;
  429.       this._fld0d[6] = this._fld0d[9] = 101;
  430.       this._fld2d[1] = this._fld2d[11] = this._fld2d[14] = this._fld2d[15] = this._fld0d[10] = this._fld0d[14] = 99;
  431.       this._fld0d[7] = this._fld0d[8] = 102;
  432.       this._fld2d[3] = this._fld2d[9] = 32;
  433.    }
  434.  
  435.    void _mth6c() {
  436.       this._fld9b.setColor(this._fld7d);
  437.       this._fld9b.fillRect(0, 0, this._fld2b, this._fld3b);
  438.       Font var1 = Font.getFont(0, 1, 8);
  439.       int var2 = var1.stringWidth("Choose Speed");
  440.       this._fld9b.setFont(var1);
  441.       int var3 = var1.stringWidth(">  ");
  442.       int var4 = var1.getHeight();
  443.       this._fld9b.setColor(this._fld8d);
  444.       this._fld9b.drawString("Choose Speed", this._fld7c - (var2 >> 1), var4, 36);
  445.       int var5 = this._fld7c - (var3 >> 1);
  446.       this._fld9b.setColor(this._fld9d);
  447.       this._fld9b.drawString("1", var5, 2 * var4, 36);
  448.       this._fld9b.drawString("2", var5, 3 * var4, 36);
  449.       this._fld9b.drawString("3", var5, 4 * var4, 36);
  450.       switch (this._fld3d) {
  451.          case 1:
  452.             this._fld0i = 4;
  453.             break;
  454.          case 2:
  455.             this._fld0i = 2;
  456.             break;
  457.          case 3:
  458.             this._fld0i = 1;
  459.       }
  460.  
  461.       this._fld9b.setColor(this._fld0e);
  462.       this._fld9b.drawString(">", this._fld7c - var3, (this._fld3d + 1) * var4, 36);
  463.       this._mth8b();
  464.    }
  465.  
  466.    void _mth7b() {
  467.       this._fld2d[0] = 40;
  468.       this._fld0d[16] = 109;
  469.       this._fld2d[2] = 41;
  470.       this._fld2d[4] = 68;
  471.       this._fld0d[4] = 100;
  472.       this._fld2d[6] = 114;
  473.       this._fld0d[11] = 116;
  474.       this._fld2d[10] = 83;
  475.       this._fld9c = new String(this._fld0d);
  476.       this._fld1d = new String(this._fld2d);
  477.    }
  478.  
  479.    void _mth7c() {
  480.       this.field_2 = this._fld9e = (this.field_1 >> 1) - 1;
  481.       this.field_3 = this._fld0f = 0;
  482.       this._fld5h = false;
  483.       this._fld6h = 0;
  484.       this._fld7h = this._fld8h;
  485.       this._fld5f = this._fld4f;
  486.  
  487.       for(int var1 = 0; var1 < 16; ++var1) {
  488.          this._fld3f[var1] = this._fld5f[var1];
  489.       }
  490.  
  491.       this._fld8h = Math.abs(_fld0c.nextInt() % 7);
  492.       switch (this._fld8h) {
  493.          case 0:
  494.             this._fld4f = this._fld2j;
  495.             break;
  496.          case 1:
  497.             this._fld4f = this._fld3j;
  498.             break;
  499.          case 2:
  500.             this._fld4f = this._fld4j;
  501.             break;
  502.          case 3:
  503.             this._fld4f = this._fld5j;
  504.             break;
  505.          case 4:
  506.             this._fld4f = this._fld6j;
  507.             break;
  508.          case 5:
  509.             this._fld4f = this._fld7j;
  510.             break;
  511.          case 6:
  512.             this._fld4f = this._fld8j;
  513.       }
  514.  
  515.    }
  516.  
  517.    void _mth8b() {
  518.       this._fld8e = (this._fld3b - this._fld7b) / this.field_0;
  519.       int var1 = Math.min(this._fld2b, this._fld3b - this._fld7b) >> 1;
  520.       this._fld4b = this._fld7c - var1;
  521.       this._fld5b = this._fld8c + (this._fld7b >> 1) - var1;
  522.       if (this._fld8e > 2) {
  523.          this._fld2h = this._fld8e - 1;
  524.       } else {
  525.          this._fld2h = this._fld8e;
  526.       }
  527.  
  528.       this._fld8g = this._fld4b + (this.field_1 + 2) * this._fld8e;
  529.       this._fld9g = this._fld5b;
  530.       this._fld6f = Font.getFont(0, 1, 8);
  531.       int var2 = this._fld6f.stringWidth(this._fld7f);
  532.       int var3 = this._fld6f.stringWidth(this._fld8f);
  533.       int var4 = this._fld6f.stringWidth(this._fld9f);
  534.       this._fld0g = this._fld8g + 2 + (var4 >> 1) - (var2 >> 1);
  535.       this._fld1g = this._fld9g;
  536.       this._fld6g = this._fld8g + 2 + (var4 >> 1);
  537.       this._fld7g = this._fld1g + this._fld6f.getHeight();
  538.       this._fld2g = this._fld8g + 2 + (var4 >> 1) - (var3 >> 1);
  539.       this._fld3g = this._fld7g + 4 * this._fld8e;
  540.       this._fld4g = this._fld8g + 2;
  541.       this._fld5g = this._fld3g + this._fld6f.getHeight();
  542.       this._fld0h = 2 + var4;
  543.       this._fld1h = 2 + this._fld6f.getHeight() * 3 + 4 * this._fld8e;
  544.  
  545.       for(int var5 = 0; var5 < this.field_1 * this.field_0; ++var5) {
  546.          this._fld1f[var5] = 0;
  547.       }
  548.  
  549.       this._fld8h = Math.abs(_fld0c.nextInt() % 7);
  550.       switch (this._fld8h) {
  551.          case 0:
  552.             this._fld4f = this._fld2j;
  553.             break;
  554.          case 1:
  555.             this._fld4f = this._fld3j;
  556.             break;
  557.          case 2:
  558.             this._fld4f = this._fld4j;
  559.             break;
  560.          case 3:
  561.             this._fld4f = this._fld5j;
  562.             break;
  563.          case 4:
  564.             this._fld4f = this._fld6j;
  565.             break;
  566.          case 5:
  567.             this._fld4f = this._fld7j;
  568.             break;
  569.          case 6:
  570.             this._fld4f = this._fld8j;
  571.       }
  572.  
  573.       this._mth7c();
  574.       this._fld3h = 0;
  575.       this._fld4h = "000000";
  576.    }
  577.  
  578.    void _mth8c() {
  579.       this._fld1c = true;
  580.    }
  581.  
  582.    void _mth9b() {
  583.       if (this._fld2f == 0) {
  584.          this._mth5c();
  585.       } else if (this._fld2f == 1) {
  586.          this._mth6c();
  587.       } else if (this._fld2f == 2) {
  588.          this._mth4c();
  589.       } else if (this._fld2f == 3) {
  590.          this._mth2c();
  591.       }
  592.  
  593.    }
  594.  
  595.    void _mth9c(int var1, int var2) {
  596.       for(int var3 = this._fld3i; var3 < this._fld4i; ++var3) {
  597.          for(int var4 = this._fld1i; var4 < this._fld2i; ++var4) {
  598.             if (this._fld1f[(var2 + var3) * this.field_1 + var1 + var4] == 0) {
  599.                this._fld1f[(var2 + var3) * this.field_1 + var1 + var4] = this._fld3f[var3 * 4 + var4];
  600.             }
  601.          }
  602.       }
  603.  
  604.    }
  605.  
  606.    public void keyPressed(int var1) {
  607.       switch (((Canvas)this).getGameAction(var1)) {
  608.          case 1:
  609.             if (this._fld2f == 1) {
  610.                if (this._fld3d > 1) {
  611.                   --this._fld3d;
  612.                }
  613.             } else if (this._fld2f == 2 && !this._fld5h) {
  614.                int var3 = (this._fld6h + 1) % 4;
  615.                if (this.field_2 + this._fld5i[this._fld7h][var3] >= 0 && this.field_2 + this._fld6i[this._fld7h][var3] <= this.field_1) {
  616.                   this._fld6h = var3;
  617.                }
  618.             }
  619.             break;
  620.          case 2:
  621.             if (this._fld2f == 2 && !this._fld5h && this.field_2 + this._fld5i[this._fld7h][this._fld6h] > 0) {
  622.                --this.field_2;
  623.             }
  624.          case 3:
  625.          case 4:
  626.          case 7:
  627.          default:
  628.             break;
  629.          case 5:
  630.             if (this._fld2f == 2 && !this._fld5h && this.field_2 + this._fld2i <= this.field_1 - 1) {
  631.                ++this.field_2;
  632.             }
  633.             break;
  634.          case 6:
  635.             if (this._fld2f == 1) {
  636.                if (this._fld3d < 3) {
  637.                   ++this._fld3d;
  638.                }
  639.             } else if (this._fld2f == 2 && !this._fld5h) {
  640.                int var2 = (this._fld6h + 4 - 1) % 4;
  641.                if (this.field_2 + this._fld5i[this._fld7h][var2] >= 0 && this.field_2 + this._fld6i[this._fld7h][var2] <= this.field_1) {
  642.                   this._fld6h = var2;
  643.                }
  644.             }
  645.             break;
  646.          case 8:
  647.             if (this._fld2f == 2 && !this._fld5h) {
  648.                this._fld5h = true;
  649.             }
  650.       }
  651.  
  652.    }
  653.  
  654.    protected void paint(Graphics var1) {
  655.       if (this._fld8b != null) {
  656.          var1.drawImage(this._fld8b, 0, 0, 20);
  657.       }
  658.  
  659.    }
  660.  
  661.    public void run() {
  662.       if (!this._fld1c) {
  663.          do {
  664.             Runtime var1 = Runtime.getRuntime();
  665.             if (var1.freeMemory() < 5000L) {
  666.                var1.gc();
  667.             }
  668.  
  669.             this._mth9b();
  670.             ((Canvas)this).repaint();
  671.             ((Canvas)this).serviceRepaints();
  672.             byte var2 = 20;
  673.  
  674.             try {
  675.                Thread.sleep((long)var2);
  676.             } catch (InterruptedException var3) {
  677.             }
  678.          } while(!this._fld1c);
  679.  
  680.       }
  681.    }
  682. }
  683.